﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Torneo.Entidades;

namespace Torneo.BusinessLogic
{
    public class UsuarioBLL
    {
        public void AgregarUsuario(Usuario usuario)
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            unityOfWork.UsuarioRepository.AgregarUsuario(usuario);
            unityOfWork.SaveChanges();
            unityOfWork.Dispose();
        }

        public void EliminarUsuario(Usuario usuario)
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            var user = unityOfWork.UsuarioRepository.ObtenerUsuariosPorId(usuario.UsuarioId);
            unityOfWork.UsuarioRepository.EliminarUsuario(user);
            unityOfWork.SaveChanges();
            unityOfWork.Dispose();
        }

        public List<Usuario> ObtenerUsuarios()
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            var users = unityOfWork.UsuarioRepository.ObtenerTodos();            
            unityOfWork.Dispose();
            return users.ToList();
        }

        public Usuario ObtenerUsuariosPorId(int id)
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            var user = unityOfWork.UsuarioRepository.ObtenerUsuariosPorId(id);
            unityOfWork.Dispose();
            return user;
        }


        public Usuario AutenticarUsuario(string user, string password)
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            return unityOfWork.UsuarioRepository.AutenticarUsuario(user, password);
        }

        public void ModificarUsuario(Usuario usuario)
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            unityOfWork.UsuarioRepository.ModificarUsuario(usuario);
            unityOfWork.SaveChanges();
            unityOfWork.Dispose();
        }
    }
}
